// RAP [rh] Keys completely disabled as not implemented in RWT ///******************************************************************************* // * Copyright (c) 2007, 2008 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ // //package org.eclipse.ui.internal.keys.model; // //import java.util.ArrayList; //import java.util.HashMap; //import java.util.Iterator; //import java.util.List; //import java.util.Map; // //import org.eclipse.core.commands.common.NotDefinedException; //import org.eclipse.core.commands.contexts.Context; //import org.eclipse.ui.contexts.IContextService; //import org.eclipse.ui.services.IServiceLocator; // ///** // * @since 3.4 // * // */ //public class ContextModel extends CommonModel { // private static final String CONTEXT_ID_ACTION_SETS = "org.eclipse.ui.contexts.actionSet"; //$NON-NLS-1$ // private static final String CONTEXT_ID_INTERNAL = ".internal."; //$NON-NLS-1$ // // public static final String PROP_CONTEXTS = "contexts"; //$NON-NLS-1$ // public static final String PROP_CONTEXT_MAP = "contextIdElementMap"; //$NON-NLS-1$ // private List contexts; // private Map contextIdToFilteredContexts; // private Map contextIdToElement; // private IContextService contextService; // // public ContextModel(KeyController kc) { // super(kc); // } // // /** // * @param locator // */ // public void init(IServiceLocator locator) { // contextService = (IContextService) locator // .getService(IContextService.class); // contexts = new ArrayList(); // contextIdToFilteredContexts = new HashMap(); // contextIdToElement = new HashMap(); // // Context[] definedContexts = contextService.getDefinedContexts(); // for (int i = 0; i < definedContexts.length; i++) { // ContextElement ce = new ContextElement(controller); // ce.init(definedContexts[i]); // ce.setParent(this); // contexts.add(ce); // contextIdToElement.put(definedContexts[i].getId(), ce); // } // } // // /** // * @return Returns the contexts. // */ // public List getContexts() { // return contexts; // } // // /** // * @param contexts // * The contexts to set. // */ // public void setContexts(List contexts) { // List old = this.contexts; // this.contexts = contexts; // controller.firePropertyChange(this, PROP_CONTEXTS, old, contexts); // } // // /** // * @return Returns the contextToElement. // */ // public Map getContextIdToElement() { // return contextIdToElement; // } // // /** // * @param contextToElement // * The contextToElement to set. // */ // public void setContextIdToElement(Map contextToElement) { // Map old = this.contextIdToElement; // this.contextIdToElement = contextToElement; // controller.firePropertyChange(this, PROP_CONTEXT_MAP, old, // contextToElement); // } // // /** // * Removes any contexts according to the parameters. The contexts are stored // * in a {@link List} to they can be easily restored. // * // * @param actionSets // * <code>true</code> to filter action set contexts. // * @param internal // * <code>true</code> to filter internal contexts // */ // public void filterContexts(boolean actionSets, boolean internal) { // // Remove undesired contexts // for (int i = 0; i < contexts.size(); i++) { // boolean removeContext = false; // ContextElement contextElement = (ContextElement) contexts.get(i); // // if (actionSets == true // && contextElement.getId().equalsIgnoreCase( // CONTEXT_ID_ACTION_SETS)) { // removeContext = true; // } else { // String parentId; // try { // parentId = ((Context) contextElement.getModelObject()) // .getParentId(); // while (parentId != null) { // if (parentId.equalsIgnoreCase(CONTEXT_ID_ACTION_SETS)) { // removeContext = true; // } // parentId = contextService.getContext(parentId) // .getParentId(); // } // } catch (NotDefinedException e) { // // No parentId to check // } // } // // if (internal == true // && contextElement.getId().indexOf(CONTEXT_ID_INTERNAL) != -1) { // removeContext = true; // } // // if (removeContext) { // contextIdToFilteredContexts.put(contextElement.getId(), // contextElement); // contextIdToElement.remove(contextElement); // } // } // // contexts.removeAll(contextIdToFilteredContexts.values()); // // Iterator iterator = contextIdToFilteredContexts.keySet().iterator(); // // Restore desired contexts // while (iterator.hasNext()) { // boolean restoreContext = false; // ContextElement contextElement = (ContextElement) contextIdToFilteredContexts // .get(iterator.next()); // // try { // if (actionSets == false // && (contextElement.getId().equalsIgnoreCase( // CONTEXT_ID_ACTION_SETS) || ((Context) contextElement // .getModelObject()).getParentId() // .equalsIgnoreCase(CONTEXT_ID_ACTION_SETS))) { // restoreContext = true; // } // } catch (NotDefinedException e) { // // No parentId to check // } // if (internal == false // && contextElement.getId().indexOf(CONTEXT_ID_INTERNAL) != -1) { // restoreContext = true; // } // // if (restoreContext) { // contexts.add(contextElement); // contextIdToElement.put(contextElement.getId(), contextElement); // iterator.remove(); // } // } // } //}